﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace SystemFrameWork
{
    /// <summary>
    /// This class is used to store parameters when taking Column-Row transferring.
    /// </summary>
    public class ColumnRowArgument
    {

        public ColumnRowArgument(DataTable ColumnTable, DataTable RowTable, List<string> ColumnsTransfering, string ColumnTransfered)
        {
            this._ColumnTable = ColumnTable;
            this._RowTable = RowTable;
            this._ColumnsTransfering = ColumnsTransfering;
            this._ColumnTransfered = ColumnTransfered;
         }

        public ColumnRowArgument(DataTable ColumnTable, DataTable RowTable, List<string> ColumnsTransfering, string ColumnTransfered, string ColumnNamesStore, List<KeyValuePair<string, string>> ColRowColumnNames)
        {
            this._ColumnTable = ColumnTable;
            this._RowTable = RowTable;
            this._ColumnsTransfering = ColumnsTransfering;
            this._ColumnTransfered = ColumnTransfered;
            this._ColRowColumnNames = ColRowColumnNames;
            this._ColumnNamesStore = ColumnNamesStore;
        }
        /// <summary>
        /// Data source table
        /// </summary>
        private DataTable _ColumnTable;
        public DataTable ColumnTable
        {
            get
            {
                return _ColumnTable;
            }
        }

        /// <summary>
        /// Data destination table
        /// </summary>
        private DataTable _RowTable;
        public DataTable RowTable
        {
            get
            {
                return _RowTable;
            }
        }

        /// <summary>
        /// columns will be transfered in ColumnTable.
        /// </summary>
        private List<string> _ColumnsTransfering;
        public List<string> ColumnsTransfering
        {
            get
            {
                return _ColumnsTransfering;
            }
        }

        /// <summary>
        /// columns will be transfered in RowTable.
        /// </summary>
        private string _ColumnTransfered;
        public string ColumnTransfered
        {
            get
            {
                return _ColumnTransfered;
            }
        }

        /// <summary>
        /// this is used to store the column names of ColumnTable in RowTable.
        /// </summary>
        private string _ColumnNamesStore;
        public string ColumnNamesStore
        {
            get
            {
                return _ColumnNamesStore;
            }
        }

        /// <summary>
        /// this is used to store the name between the Column in ColumnTable and Row in RowTable.
        /// </summary>
        private List<KeyValuePair<string, string>> _ColRowColumnNames;
        public List<KeyValuePair<string, string>> ColRowColumnNames
        {
            get
            {
                return _ColRowColumnNames;
            }
           
        }
    

    }
}
